package com.bookmarket.service.impl;

import com.bookmarket.dao.HJHActiveMapper;
import com.bookmarket.entity.Active;
import com.bookmarket.entity.Btype;
import com.bookmarket.service.HJHActiveService;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
import java.util.Map;

@Service("/hJHActiveService")
public class HJHActiveServiceImpl implements HJHActiveService{

    @Resource
    private HJHActiveMapper hJHActiveMapper;

    @Override
    public Page findAll(Map<String, Object> cond) {

        Page page = new Page();
        // 总条数
        page.setTotal(hJHActiveMapper.getCount(cond));
        // 从请求参数中获取每页大小(参数中封装了前台传过来的页码页数;拿出来)
        int pageSize = Integer.parseInt(String.valueOf(cond.get("pageSize")));
        //将前台拿到的每页数据条数放进page对象中(注：从封装的对象中拿出来的)
        page.setPageSize(pageSize);
        // 从请求参数中获取当前页码
        int curPageNum = Integer.parseInt(String.valueOf(cond.get("pageNum")));
        //将前台拿到的页码放进page对象中(注：引用的对象中有对应的属性)
        page.setPageNum(curPageNum);
        //动态计算总页数(总记录数 除以 每页大小，加上  总页数 求余 每页大小，如果余数不为0，则 加 1，否则 加 0 )
        page.setPageNum((int) (page.getTotal() / pageSize + (page.getTotal() % pageSize == 0 ? 0 : 1)));
        //根据条件查询符合的用户列表记录，赋值给page的result变量
        page = PageHelper.startPage(curPageNum, pageSize);
        //根据页码页数查询对应的信息
        List list = hJHActiveMapper.findAll(cond);

        return page;
    }

    //删除方法
    public void delActive(int id){
        hJHActiveMapper.delActive(id);
    }

    //编辑信息_查
    public Active findActive(int id){
        return hJHActiveMapper.findActive(id);
    }

    //获取所有的类型
    public List<Btype> findBtype(){
        return hJHActiveMapper.findBtype();
    }


    //增加活动
    public void addActive(Map<String,Object> map){
        hJHActiveMapper.addActive(map);
    }

    //编辑
    public void updateActive(Map<String,Object> map){
        hJHActiveMapper.updateActive(map);
    }


    //获取未结束的活动
    public List<Active> GetActivePicture(){
        return hJHActiveMapper.GetActivePicture();
    }

    //根据id查询所有符合活动的图片
    public Active GetPicture(int id){
        return hJHActiveMapper.GetPicture(id);
    }

    //根据id查询所有符合活动的图书，加分类
    public Page findAllBook(Map<String, Object> cond){
        Page page = new Page();
        // 总条数

        page.setTotal(hJHActiveMapper.findAllBookCount(cond));
        // 从请求参数中获取每页大小(参数中封装了前台传过来的页码页数;拿出来)
        int pageSize = Integer.parseInt(String.valueOf(cond.get("pageSize")));
        //将前台拿到的每页数据条数放进page对象中
        page.setPageSize(pageSize);
        // 从请求参数中获取当前页码
        int curPageNum = Integer.parseInt(String.valueOf(cond.get("pageNum")));
        //将前台拿到的页码放进page对象中(注：引用的对象中有对应的属性)
        page.setPageNum(curPageNum);
        //动态计算总页数(总记录数 除以 每页大小，加上  总页数 求余 每页大小，如果余数不为0，则 加 1，否则 加 0 )
        page.setPageNum((int) (page.getTotal() / pageSize + (page.getTotal() % pageSize == 0 ? 0 : 1)));
        //根据条件查询符合的用户列表记录，赋值给page的result变量
        page = PageHelper.startPage(curPageNum, pageSize);
        //根据页码页数查询对应的信息
        List list = hJHActiveMapper.findAllBook(cond);

        return page;
    }


    public HJHActiveMapper gethJHActiveMapper() {
        return hJHActiveMapper;
    }

    public void sethJHActiveMapper(HJHActiveMapper hJHActiveMapper) {
        this.hJHActiveMapper = hJHActiveMapper;
    }
}